Если в SQL-запросе необходимо получить данные из двух или более таблиц, используют соединения таблиц. Различают два типа соединений:
Соединение в простейшем варианте определяется предложением:
SELECT столбцы FROM таблица1, таблица2 WHERE условие_соединения
Поскольку в разных таблицах имена столбцов могут совпадать (например столбцы DEPTNO в таблицах EMP и DEPT) то их принято именовать в виде
имя_таблицы . имя_столбца.
Работая с соединениями удобно применять вместо имен таблиц их псевдонимы.
Правило: Если во фразе FROM введены псевдонимы, то во фразе SELECT должны в качестве префиксов имен столбцов использоваться эти псевдонимы а не имена таблиц.
Пример: Выдадим список должностей всех сотрудников, указав названия отделов, в которых они работают:
SELECT E.ENAME, D.DEPTNO, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO ORDER BY D.DEPTNO;
Соединения таблиц выполняются по условиям, отличным от равенства значений столбцов.
В качестве примера определим в какую категорию по оплате входит каждый сотрудник. Соединим таблицы EMP и SALGRADE, проверяя оператором BETWEEN между какими границами LOSAL и HISAL находится заработная плата SAL сотрудника:
SELECT E.NAME, E.SAL, S.GRADE FROM EMP E, SALGRADE S WHERE E.SAL BETWEEN S.LOSAL BETWEENAND S.HISAL;
Замечание: При ошибках в соединениях могут образовываться декартовы произведения, в которых каждая строка одной таблицы комбинируется с каждой строкой другой. В практике получаются таблицы очень большого размера и SQL-запрос работает очень долго.